import { defineStore } from 'pinia'
import { LayoutEnum } from './types'


/**
 * 设置状态管理仓库
 * 
 * @description 管理应用的全局设置，包括布局类型等配置
 * @property {LayoutEnum} layoutType - 当前布局类型，从localStorage中获取默认值
 */
export const useSettingsStore = defineStore('settings', {
  state: () => ({
    layoutType: localStorage.getItem('layoutType') || LayoutEnum.MENU
  }),
  actions: {
    /**
     * 切换布局类型
     * 
     * @param {LayoutEnum} layout - 要切换到的布局类型
     * @returns {void}
     */
    setLayoutType(layout: LayoutEnum) {
      this.layoutType = layout
      // 保存到localStorage
      localStorage.setItem('layoutType', layout)
    }
  },
})

/**
 * 设置状态管理仓库实例
 * 
 * @description 用于在组件中直接访问设置状态
 * @type {ReturnType<typeof useSettingsStore>}
 */
export default useSettingsStore()